var express = require('express');
var router = express.Router();
var mongodb = require("../../utils/mongodb")
var bcrypt = require("../../utils/bcrypt")
var jwt = require("../../utils/jwt")
/* GET home page. */
router.get('/', function(req, res, next) {
    //1.获取前端传递来的用户名与密码
    let {username,password} = req.query;
    //2.验证必传参数
    if(!username || !password){
        res.send({
            err:1,
            msg:"用户名与密码为必传参数..."
        })
        return
    }
    //3.需要查询数据库
    mongodb.open({
        collectionName:"user"
    }).then(({collection,client})=>{
        //进行查询操作
        collection.find({username}).toArray((err,result)=>{
            if(err){
                res.send({err:1,msg:"集合操作失败..."})
                client.close()
            }else{
                if(result.length>0){
                    //3-1 代表用户在数据库是存在的 ==> 登录的密码与数据库里面的密码进行校验 ==> 登录成功（token)
                    let flag = bcrypt.compareSync(password,result[0].password)
                    if(flag){ //说明密码输入正确
                        //生成token令牌
                        let token = jwt.sign({username,_id:result[0]._id})
                        delete result[0].username
                        delete result[0].password
                        res.send({
                            err:0,
                            msg:"恭喜您，登录成功！",
                            token,
                            data:result[0]  
                        })
                    }else{
                        res.send({err:1,msg:"用户名或者密码输入有误..."})
                    }
                    client.close()
                }else{ //3-2 用户在数据库里面不存在
                    res.send({err:1,msg:"此用户不存在，请注册！"})
                    client.close()
                }
            }
        })
    }).catch(err=>{
        res.send({err:1,msg:"数据库连接失败..."})
    })
});

module.exports = router;
